import thin_render from "../../../lib/thin_render.mjs";

/**
 * 渲染输入框编辑器
 * @param {HTMLElement} td - 单元格元素
 * @param {Object} col - 列配置
 * @param {Object} template - 模板配置
 * @param {boolean} insert - 是否为插入行
 */
export function renderEditInput(td, col, template, insert) {
  let config = {
    input: col.col,
    id: col.col,
    type: col.type,
    ajax: col.ajax,
    options: col.options,
    required: col.required,
    a: col.a,
    event: {
      change: (e) => {
        console.log("Input change event:", {
          insert,
          hasChanged: !!template?.changed,
        });

        // 处理非插入行的变更事件
        if (!insert) {
          // 处理列变更事件
          if (col.changed) {
            col.changed(e);
          }

          // 处理行变更事件
          if (template.rowchange) {
            template.rowchange(e);
            template?.changed?.(e);
          }
        } else if (template.insertrowchange) {
          // 插入行只触发 insertrowchange
          template.insertrowchange(e);
        }
      },
    },
  };
  if (col.col) config.bind = col.col;
  thin_render(td, config);
}
